package com.sophossystems.client.asmon.dao;

import com.sophossystems.client.asmon.dao.ModuleDao;
import com.sophossystems.client.asmon.dto.ModuleDTO;
import com.sophossystems.client.asmon.dto.ModulePkDTO;
import com.sophossystems.client.asmon.exceptions.DaoException;
import java.util.List;

public interface ModuleDao
{
	/**
	 * Method 'insert'
	 * 
	 * @param dto
	 * @return ModulePk
	 */
	public ModulePkDTO insert(final ModuleDTO dto);

	/** 
	 * Updates a single row in the Module table.
	 */
	public void update(final ModuleDTO dto) throws DaoException;

	/** 
	 * Deletes a single row in the Module table.
	 */
	public void delete(final ModulePkDTO pk) throws DaoException;

	/** 
	 * Returns all rows from the Module table that match the criteria 'idModule = :idModule'.
	 */
	public ModuleDTO findByPrimaryKey(final int idModule) throws DaoException;

	/** 
	 * Returns all rows from the Module table that match the criteria ''.
	 */
	public List<ModuleDTO> findAll() throws DaoException;

	/** 
	 * Returns all rows from the Module table that match the criteria 'idModule = :idModule'.
	 */
	public List<ModuleDTO> findWhereIdModuleEquals(final int idModule) throws DaoException;

	/** 
	 * Returns all rows from the Module table that match the criteria 'Description = :description'.
	 */
	public List<ModuleDTO> findWhereDescriptionEquals(final String description) throws DaoException;

	/** 
	 * Returns all rows from the Module table that match the criteria 'idSystem = :idSystem'.
	 
	public List<ModuleDTO> findWhereIdSystemEquals(int idSystem) throws DaoException;*/

	/** 
	 * Returns the rows from the Module table that matches the specified primary-key value.
	 
	public ModuleDTO findByPrimaryKey(ModulePkDTO pk) throws DaoException;*/
	
	public ModulePkDTO findLastInsert() throws DaoException;

}
